package classLoad;

/**
 * https://www.cnblogs.com/jhxxb/p/10900405.html
 * https://blog.csdn.net/f641385712/article/details/80350192
 * 1、父类静态属性(静态代码块)初始化->子类静态属性(静态代码块)初始化。（按照属性和代码块定义的先后顺序执行）
 * 2、父类非静态属性(非静态代码块，注意被子类重写的方法)->父类构造器。（按照属性和代码块定义的先后顺序执行）
 * 3、子类非静态属性(非静态代码块)->子类构造器。（按照属性和代码块定义的先后顺序执行）
 */
public class Son extends Father {
    private int i = test();
    private static int j = method();

    static {
        System.out.print("(6)");
    }

    Son() {
        super();
        System.out.print("(7)");
    }

    {
        System.out.print("(8)");
    }

    public int test() {
        System.out.print("(9)");
        return 1;
    }

    public static int method() {
        System.out.print("(10)");
        return 1;
    }

    public static void main(String[] args) {
        Son son = new Son();
        System.out.println();
        Son son1 = new Son();
    }
}
